parse-code-context
Parse code context in a single line of javascript, for functions, variable declarations, methods, prototype properties, prototype methods etc.
Install
Install with npm
$ npm i parse-code-context --save
Usage
var parse = require('parse-code-context');
Examples
function statement
parse("function app(a, b, c) {\n\n}");
Results in:
{ type: 'function statement',
name: 'app',
params: [ 'a', 'b', 'c' ],
string: 'app()',
original: 'function app() {\n\n}' }
function expression
parse("var app = function(a, b, c) {\n\n}");
Results in:
{ type: 'function expression',
name: 'app',
params: [ 'a', 'b', 'c' ],
string: 'app()',
original: 'var app = function() {\n\n}' }
module.exports
function expression
parse("module.exports = function foo(a, b, c) {\n\n}");
Results in:
{ type: 'function expression',
receiver: 'module.exports',
name: 'foo',
params: [ 'a', 'b', 'c' ],
string: 'module.exports()',
original: 'module.exports = function foo(a, b, c) {\n\n}' }
module.exports
method
parse("module.exports = function() {\n\n}");
Results in:
{ type: 'method',
receiver: 'module.exports',
name: '',
params: [],
string: 'module.exports.() {\n\n}()',
original: 'module.exports = function() {\n\n}' }
prototype method
parse("Template.prototype.get = function() {}");
Results in:
{ type: 'prototype method',
class: 'Template',
name: 'get',
params: [],
string: 'Template.prototype.get()',
original: 'Template.prototype.get = function() {}' }
prototype property
parse("Template.prototype.enabled = true;\nasdf");
Results in:
{ type: 'prototype property',
class: 'Template',
name: 'enabled',
value: 'true',
string: 'Template.prototype.enabled',
original: 'Template.prototype.enabled = true;\nasdf' }
method
parse("option.get = function() {}");
Results in:
{ type: 'method',
receiver: 'option',
name: 'get',
params: [],
string: 'option.get()',
original: 'option.get = function() {}' }
property
parse("option.name = \"delims\";\nasdf");
Results in:
{ type: 'property',
receiver: 'option',
name: 'name',
value: '"delims"',
string: 'option.name',
original: 'option.name = "delims";\nasdf' }
declaration
parse("var name = \"delims\";\nasdf");
Results in:
{ type: 'declaration',
name: 'name',
value: '"delims"',
string: 'name',
original: 'var name = "delims";\nasdf' }
function statement params
parse("function app(a, b) {\n\n}");
Results in:
{ type: 'function statement',
name: 'app',
params: [ 'a', 'b' ],
string: 'app()',
original: 'function app(a, b) {\n\n}' }
function expression params
parse("var app = function(foo, bar) {\n\n}");
Results in:
{ type: 'function expression',
name: 'app',
params: [ 'foo', 'bar' ],
string: 'app()',
original: 'var app = function(foo, bar) {\n\n}' }
function expression params
parse("var app=function(foo,bar) {\n\n}");
Results in:
{ type: 'function expression',
name: 'app',
params: [ 'foo', 'bar' ],
string: 'app()',
original: 'var app=function(foo,bar) {\n\n}' }
prototype method params
parse("Template.prototype.get = function(key, value, options) {}");
Results in:
{ type: 'prototype method',
class: 'Template',
name: 'get',
params: [ 'key', 'value', 'options' ],
string: 'Template.prototype.get()',
original: 'Template.prototype.get = function(key, value, options) {}' }
Related projects
- code-context: Parse a string of javascript to determine the context for functions, variables and comments based… more | homepage
- snapdragon: snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory. | homepage
- strip-comments: Strip comments from code. Removes line comments, block comments, the first comment only, or all… more | homepage
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Author
Jon Schlinkert
License
Copyright © 2015 Jon Schlinkert
Released under the MIT license.
This file was generated by verb on December 20, 2015.